'use strict';
//把参数转格式
const baseValidate = (attr) => {
    let validate = "";
    switch (attr) {
        case 'phone':
            validate = 'phone';
            break;
        case 'name':
            validate = 'name';
            break;
        case 'title':
            validate = 'title';
            break;
        case 'password':
        case 'oldPassword':
        case 'newPassword':
            validate = 'password';
            break;
        case 'classifyArr':
            validate = 'classifyArr';
            break;
        case 'id':
        case 'blogId':
        case 'parentCommentId':
        case 'receiveId':
        case 'projectId':
            validate = 'id';
            break;
        default:
            validate = 'string';
            break;
    }
    return validate
}
const dataCheck = function (...attrArr) {
    let validateObj = {};
    //遍历参数 按照对应的规则校验
    attrArr.forEach(item => {
        validateObj[item] = baseValidate(item)
    })
    //获取参数
    let attrSource = this.ctx.request.body;
    //如果请求方式为GET 参数来源改变到 this.ctx.query
    if (this.ctx.method == "GET") {
        attrSource = this.ctx.query;
    }
    try {
        //数据校验
        this.ctx.validate(validateObj, attrSource);
        //传参方式  对象
        // this.ctx.validate({
        //     title: { type: 'string' },
        //     content: { type: 'string' },
        //   });
    } catch (err) {
        // console.log(err);
        return err.errors.map(item => {
            return item.field;
        });
    }
}
module.exports = dataCheck;